
/*

    router.push
        导航到不同的URL，这个方法会向history栈添加一个新的记录
        编程式router.push(...) 等价于 声明式<router-link :to="...">


    router.replace
        与router.push功能相似，唯一的不同是，它不会向history添加新记录
        编程式router.replace(...) 等价于 声明式<router-link :to="..." replace>

    $router与$route的区别
        $router是VueRouter的实例，相当于一个全局的路由器对象
        $route表示当前正在跳转的路由对象

*/


// 字符串
router.push('home')

// 对象
router.push({ path: 'home' })

// 命名的路由
router.push({ name: 'user', params: { userId: '123' }})

// 带查询参数，变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})


const userId = '123'
router.push({ name: 'user', params: { userId }}) // -> /user/123
router.push({ path: `/user/${userId}` }) // -> /user/123
// 这里的 params 不生效， 如果提供了path，params会被忽略
router.push({ path: '/user', params: { userId }}) // -> /user


// 在浏览器记录中前进一步，等同于 history.forward()
router.go(1)

// 后退一步记录，等同于 history.back()
router.go(-1)

// 前进 3 步记录
router.go(3)

// 如果 history 记录不够用，那就默默地失败呗
router.go(-100)
router.go(100)